Methods and systems for configuring radio frequency module

ABSTRACT

The present invention discloses methods and systems for configuring at least one radio frequency (RF) module by a wireless communication apparatus. The wireless communication apparatus sends a first message to the at least one RF module, and the first message comprises a request for at least one international mobile subscriber identity (IMSI) of at least one subscriber identity module (SIM) card. A second message is then received from the RF module, and the second message comprises the at least one IMSI. The wireless communication apparatus determines which wireless network service provider(s) the at least one SIM card is associated with. The wireless communication apparatus identifies at least one configuration information. The wireless communication apparatus then sends a third message to the at least one RF module, and the third message comprises the at least one configuration information. The at least one RF module is then configured based on the at least one configuration information.

RELATED APPLICATIONS

The present application is a Non-provisional continuation applicationwhich claims the benefits of and is based on application Ser. No.14/410,096 titled “METHODS AND SYSTEMS FOR CONFIGURING RADIO FREQUENCYMODULE” filed on 24 Oct. 2014. The contents of the above-referencedapplication are herein incorporated by reference.

TECHNICAL FIELD

The present invention relates in general to the field of computernetworks. More particularly, the present invention relates to methodsand systems for configuring a Radio Frequency (RF) module by a wirelesscommunication apparatus. A configuration in-formation is sent to the RFmodule, where the configuration information is identified according toan international mobile subscriber identity (IMSI) of a subscriberidentity module (SIM) card.

BACKGROUND ART

Wireless communication apparatus that have cellular capabilities can usea Radio Frequency (RF) module for communicating with base stations ofdifferent wireless network service providers. An RF module can beconfigured manually to switch from one operating mode to another when aSubscriber Identity Module (SIM) card is changed or identity of wirelessnetwork service provider changes. Depending on the wireless networkservice provider, settings at the RF module may be different fordifferent wireless network service provider or different type of serviceprovided by wireless network service providers. In this way, the samewireless communication apparatus can operate with different SIM cards ordifferent wireless network service providers.

U.S. Pat. No. 8,346,255 discloses configuring a mobile wirelesscommunication device with configuration profiles based on a set ofidentifier values. U.S. Pat. No. 8,346,255 fails to disclose methods forconfiguring an RF module. It also fails to disclose methods forconfiguring the RF module of a wireless communication apparatus.Further, it also fails to disclose methods for configuring based oninternational mobile subscriber identity (IMSI) only.

As different wireless network service providers may use differentfrequency values, different protocols, and different settings whileproviding services to wireless communication apparatus, the wirelesscommunication apparatus may need to configure one or more of its RFmodules accordingly in order to use the wireless communication servicesprovided by the wireless network service providers.

There is a need for methods and systems for configuring RF modules ofwireless communication apparatus in order to allow the wirelesscommunication apparatus to be able to use wireless communicationservices provided by different wireless network service providers.

DISCLOSURE OF INVENTION Summary

The present invention discloses methods and systems for configuring atleast one radio frequency (RF) module by a wireless communicationapparatus. The wireless communication apparatus sends a first message tothe at least one RF module, and the first message comprises a requestfor at least one international mobile subscriber identity (IMSI) of atleast one subscriber identity module (SIM) card. A second message isthen received from the at least one RF module, and the second messagecomprises the at least one IMSI of the at least one SIM card. The RFmodule retrieves the at least one IMSI from the at least one SIM card.The wireless communication apparatus determines which wireless networkservice provider(s) the at least one SIM card is associated with. Basedon the wireless network service provider, the wireless communicationapparatus identifies at least one configuration information. Thewireless communication apparatus then sends a third message to the atleast one RF module, and the third message comprises the at least oneconfiguration information. The at least one RF module is then configuredbased on the at least one configuration information.

According to one of the embodiments, the configuration information canbe information corresponding to a firmware, a firmware or one or moresettings. The one or more settings can be selected from a groupconsisting of a frequency value, an Access Point Name (APN), anauthentication information, a network type, and roaming networksettings.

According to one of the embodiments, the configuration information issubstantially based on Qualcomm MSM Interface (QMI) protocol.

According to one of the embodiments, when the wireless communicationapparatus houses a plurality of SIM cards, the wireless communicationapparatus assigns priorities to the plurality of SIM cards. The at leastone IMSI retrieved is an IMSI of a SIM card with the highest priority.The priorities may be based on position of the plurality of SIM cards.

According to one of the embodiments, when the at least one configurationinformation is information corresponding to a firmware, the wirelesscommunication apparatus determines whether the firmware is stored in theat least one RF module. If the firmware is not stored in the at leastone RF module, the wireless communication apparatus sends the firmwareto the at least one RF module. When the firmware is stored in the atleast one RF module, the at least one RF module configures itself withthe firmware.

According to one of the embodiments, the wireless communicationapparatus sends a fourth message to the at least one RF module, and thefourth message comprising a request for a current configurationinformation of the at least one RF module. The wireless communicationapparatus compares the current configuration information of the at leastone RF module with the at least one configuration information. Thewireless communication apparatus sends the configuration information tothe at least one RF module and configures the at least one RF modulewith the configuration information if the current configurationinformation of the at least one RF module is not the same as the atleast one configuration information. If the current configurationinformation of the at least one RF module is the same as the at leastone configuration information, the wireless communication apparatus doesnot send the configuration information to the at least one RF module andalso does not configure the RF module.

According to one of the embodiments, after configuring the at least oneRF module, the wireless communication apparatus verifies whether theconfiguration of the at least one RF module has been changed accordingto the configuration information. The verifying may be performed bydetermining whether a fifth message received from the at least one RFmodule is same as an expected response. According to one of theembodiments, the wireless communication apparatus resets the at leastone RF module after configuring.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1A is an illustrative block diagram of a wireless communicationapparatus according to various embodiments of the present invention;

FIG. 1B is an illustrative block diagram of a wireless communicationapparatus according to various embodiments of the present invention;

FIG. 1C illustrates a network environment according to one of theembodiments of the present invention;

FIG. 2A is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 2B is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 3A is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 3B is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 4A is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 4B is a flowchart illustrating a process according to one of theembodiments of the present invention;

FIG. 5 illustrates a format of an international mobile subscriberidentity (IMSI) of a SIM card inserted; and

FIG. 6 is a flowchart illustrating a process according to one of theembodiments of the present invention.

DETAILED DESCRIPTION

The ensuing description provides preferred exemplary embodiment(s) only,and is not intended to limit the scope, applicability or configurationof the invention. Rather, the ensuing description of the preferredexemplary embodiment(s) will provide those skilled in the art with anenabling description for implementing a preferred exemplary embodimentof the invention. It being understood that various changes may be madein the function and arrangement of elements without departing from thespirit and scope of the invention as set forth in the appended claims.

Specific details are given in the following description to provide athorough under-standing of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodiments maybe practiced without these specific details. For example, circuits maybe shown in block diagrams in order not to obscure the embodiments inunnecessary detail. In other instances, well-known circuits, processes,algorithms, structures, and techniques may be shown without unnecessarydetail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments may be described as a processwhich is depicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be re-arranged. A process is terminated when itsoperations are completed, but could have additional steps not includedin the figure. A process may correspond to a method, a function, aprocedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination corresponds to a return of the functionto the calling function or the main function.

Embodiments, or portions thereof, may be embodied in programinstructions operable upon a processing unit for performing functionsand operations as described herein. The program instructions making upthe various embodiments may be stored in a storage medium.

The program instructions making up the various embodiments may be storedin a storage medium. Moreover, as disclosed herein, the term “storagemedium” may represent one or more devices for storing data, includingread only memory (ROM), programmable read-only memory (PROM), erasableprogrammable read-only memory (EPROM), random access memory (RAM),magnetic RAM, core memory, floppy disk, flexible disk, hard disk,magnetic tape, CD-ROM, flash memory devices, a memory card and/or othermachine readable mediums for storing information. The term“machine-readable medium” includes, but is not limited to portable orfixed storage devices, optical storage mediums, magnetic mediums, memorychips or cartridges, wireless channels and various other mediums capableof storing, containing or carrying instruction(s) and/or data. Amachine-readable medium can be realized by virtualization, and can be avirtual machine readable medium including a virtual machine readablemedium in a cloud-based instance.

The term computer-readable medium, main memory, or secondary storage, asused herein refers to any medium that participates in providinginstructions to a processing unit for execution. The computer-readablemedium is just one example of a machine-readable medium, which may carryinstructions for implementing any of the methods and/or techniquesdescribed herein. Such a medium may take many forms, including but notlimited to, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks.Volatile media includes dynamic memory. Transmission media includescoaxial cables, copper wire and fiber optics. Transmission media canalso take the form of acoustic or light waves, such as those generatedduring radio-wave and infra-red data communications.

A volatile storage may be used for storing temporary variables or otherintermediate information during execution of instructions by aprocessing unit. A non-volatile storage or static storage may be usedfor storing static information and instructions for processor, as wellas various system configuration parameters.

The storage medium may include a number of software modules that may beimplemented as software code to be executed by the processing unit usingany suitable computer instruction type. The software code may be storedas a series of instructions or commands, or as a program in the storagemedium.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to the processor forexecution. For example, the instructions may initially be carried on amagnetic disk from a remote computer. Alter-natively, a remote computercan load the instructions into its dynamic memory and send theinstructions to the system that runs the one or more sequences of one ormore instructions.

A processing unit may be a microprocessor, a microcontroller, a digitalsignal processor (DSP), any combination of those devices, or any othercircuitry configured to process information.

A processing unit executes program instructions or code segments forimplementing embodiments of the present invention. Furthermore,embodiments may be implemented by hardware, software, firmware,middleware, microcode, hardware description languages, or anycombination thereof. When implemented in software, firmware, middlewareor microcode, the program instructions to perform the necessary tasksmay be stored in a computer readable storage medium. A processingunit(s) can be realized by virtualization, and can be a virtualprocessing unit(s) including a virtual processing unit in a cloud-basedinstance.

Embodiments of the present invention are related to the use of acomputer system for implementing the techniques described herein. In anembodiment, the inventive processing units may reside on a machine suchas a computer platform. According to one embodiment of the invention,the techniques described herein are performed by computer system inresponse to the processing unit executing one or more sequences of oneor more instructions contained in the volatile memory. Such instructionsmay be read into the volatile memory from another computer-readablemedium. Execution of the sequences of instructions contained in thevolatile memory causes the processing unit to perform the process stepsdescribed herein. In alternative embodiments, hard-wired circuitry maybe used in place of or in combination with software instructions toimplement the invention. Thus, embodiments of the invention are notlimited to any specific combination of hardware circuitry and software.

A code segment, such as program instructions, may represent a procedure,a function, a subprogram, a program, a routine, a subroutine, a module,a software package, a class, or any combination of instructions, datastructures, or program statements. A code segment may be coupled toanother code segment or a hardware circuit by passing and/or receivinginformation, data, arguments, parameters, or memory contents.Information, arguments, parameters, data, etc. may be passed, forwarded,or transmitted via any suitable means including memory sharing, messagepassing, token passing, network transmission, etc.

Alternatively, hardwired circuitry may be used in place of, or incombination with, software instructions to implement processesconsistent with the principles of the invention. Thus, implementationsconsistent with principles of the invention are not limited to anyspecific combination of hardware circuitry and software.

A network interface that may be provided by a node is an Ethernetinterface, a frame relay interface, a fibre optic interface, a cableinterface, a DSL interface, a token ring interface, a serial businterface, an universal serial bus (USB) interface, Firewire interface,Peripheral Component Interconnect (PCI) interface, etc.

A network interface may be implemented by a standalone electroniccomponent or may be integrated with other electronic components. Anetwork interface may have no network connection or at least one networkconnection depending on the configuration. A network interface may be anEthernet interface, a frame relay interface, a fibre optic interface, acable interface, a Digital Subscriber Line (DSL) interface, a token ringinterface, a serial bus interface, a universal serial bus (USB)interface, Firewire interface, Peripheral Component Interconnect (PCI)interface, cellular network interface, etc.

A network interface may connect to a wired or wireless access network.An access network may carry one or more network protocol data. A wiredaccess network may be implemented using Ethernet, fiber optic, cable,DSL, frame relay, token ring, serial bus, USB, Firewire, PCI, or anymaterial that can pass information. A wireless access network may beimplemented using infra-red, High-Speed Packet Access (HSPA), HSPA+,Long Term Evolution (LTE), WiMax, General packet radio service (GPRS),Global System for Mobile Communications (GSM), Enhanced Data rates forGSM Evolution (EDGE), Code division multiple access (CDMA), WiFi,CDMA2000, Wideband CDMA (WCDMA), Time Division CDMA (TD-SCDMA),BLUETOOTH, WiBRO, Evolution-Data Optimized (EV-DO); Digital EnhancedCordless Telecommunications (DECT); Digital AMPS (IS-136/TDMA);Integrated Digital Enhanced (iDEN) or any other wireless technologies.For example, a network interface may be used as a local area network(LAN) interface or a wide area network (WAN) interface

Embodiments, or portions thereof, may be embodied in a computer datasignal, which may be in any suitable form for communication over atransmission medium such that it is readable for execution by afunctional device (e.g., processing unit) for performing the operationsdescribed herein. The computer data signal may include any binarydigital electronic signal that can propagate over a transmission mediumsuch as electronic network channels, optical fibers, air,electromagnetic media, radio frequency (RF) links, and the like, andthus the data signal may be in the form of an electrical signal, opticalsignal, radio frequency or other wireless communication signal, etc. Thecode segments may, in certain embodiments, be downloaded via computernetworks such as the Internet, an intranet, local area network (LAN),metropolitan area network (MAN), wide area network (WAN), the PSTN, asatellite communication system, a cable transmission system, and/or thelike.

Universal integrated circuit cards (UICC) are a form of

§ smart card

used in wireless communication apparatus on various wirelesscommunication networks. A well-known version of a UICC is a subscriberidentity module (SIM) card that can be used in wireless communicationapparatus on Global System for Mobile Communications (GSM) wirelesscommunication networks. Equivalents of SIM cards also include universalmobile telecommunication system (UMTS) SIM (USIM) cards on UMTS networksand Code Division Multiple Access SIM (CSIM) cards on Code DivisionMultiple Access (CDMA) networks. SIM cards can be issued by a wirelesscommunication service provider. When a SIM card is inserted into thecellular device, the processing unit of the wireless communicationapparatus may then be able to identify which wireless communicationservice provider associated with SIM card.

In general, each SIM card used for wireless communication service has aunique serial number known as an international mobile subscriberidentity (IMSI). The IMSI comprises a set of wireless networkidentification values. Portions of the IMSI can be accessed from the SIMcard in wireless communication apparatus to configure the wirelesscommunication apparatus for a particular wireless network serviceprovider's network.

The present invention discloses methods for configuring one or more ofradio frequency (RF) modules of the wireless communication apparatus bymaking use of the set of wireless network identification values.

FIG. 1A is an illustrative block diagram of a wireless communicationapparatus, such as wireless communication apparatus 101 according tovarious embodiments of the present invention. Wireless communicationapparatus 101 comprises processing unit 102, main memory 103, system bus104, secondary storage 105, Subscriber Identity Module (SIM) cardinterface 106, Radio Frequency (RF) module 107, and network interface108. Processing unit 102 and main memory 103 are connected to each otherdirectly. System bus 104 connects processing unit 102 directly orindirectly to secondary storage 105, SIM card interface 106, RF module107, and network interface 108. Using system bus 104 allows wirelesscommunication apparatus 101 to have increased modularity. System bus 104couples processing unit 102 to secondary storage 105, SIM card interface106, RF module 107, and network interface 108. System bus 104 can be anyof several types of bus structures including a memory bus, a peripheralbus, and a local bus using any of a variety of bus architectures.Secondary storage 105 stores program instructions for execution byprocessing unit 102. The scope of the invention is not limited towireless communication apparatus 101 having one SIM card interface 106,RF module 107, or network interface 108, such that wirelesscommunication apparatus 101 may have one or more SIM card interfaces106, one or more RF modules 107, and one or more network interfaces 108.SIM cards can be inserted into SIM card interfaces 106. A SIM cardsocket can be a SIM card interface.

In a preferred embodiment, RF Module 107 used in the wirelesscommunication apparatus 101 is a MC7354 available from Sierra Wireless.

According to one of the embodiments, as illustrated in FIG. 1B, SIM cardinterface 116 and RF module 107 are connected to each other directly.SIM card interface 116 is not connected to system bus 104, and henceprocessing unit 102 can only communicate with SIM card interface 116through RF module 107. RF module 107 may be connected to one or more SIMcard interfaces 116.

In one variant, SIM card interfaces 106 and 116 may be embedded inwireless communication apparatus 101. Wireless communication apparatus101 houses the SIM card(s) inserted in SIM card interfaces 106 or 116.

Alternatively, an external device may house one or more SIM cards, andthe external device is connected to wireless communication apparatus101. The external device may also house one or more RF modules 107, andthus RF module 107 is not housed by wireless communication apparatus101. For example, the external device may be a Universal Serial Bus(USB) Long-Term Evolution (LTE) modem and wireless communicationapparatus 101 connects to the external device through a USB interface.Wireless communication apparatus 101 is capable of connecting to one ormore external devices.

Wireless communication apparatus 101 may be comprised in a wirelesscommunication system. The wireless communication system compriseswireless communication apparatus 101, at least one RF module, and atleast one SIM card interface. The at least one RF module is housed inthe wireless communication apparatus or in an external device. The atleast one SIM card interface is housed in the wireless communicationapparatus or in the external device.

FIG. 1C illustrates a network environment according to one of theembodiments of the present invention. Wireless communication apparatus101 may connect to either base station 121 or base station 122 dependingon which wireless network service provider a SIM card inserted in SIMcard interface 106 is associated with. For example, wirelesscommunication apparatus 101 may connect to an AT&T Mobility networkthrough base station 121 if the SIM card is provided by AT&T Mobility.Alternatively, wireless communication apparatus 101 may connect to aVerizon network through base station 122 if the SIM card is provided byVerizon. Wireless communication apparatus 101 may access resources atcore network 123 through base station 121 or 122. The resources mayinclude hosts or servers accessible through core network 123.

FIG. 5 illustrates a format of an international mobile subscriberidentity (IMSI) 501 specified in the international telecommunicationsrecommendation ITU-T E.212 for a SIM card inserted in SIM card interface106. The first set of three digits of the IMSI 501 can specify a mobilecountry code (MCC) 502. The next set of two or three digits of the IMSI501 following the MCC 502 can specify a mobile network code (MNC) 503.The final set of not more than 10 digits can specify a mobile subscriberidentification number (MSIN) 504. A country or a region can beassociated with one or more MCC 502 values. For example, the MCC 502values for US can be between “310” and “316”, while MCC values for Chinaand Hong Kong are “460” and “454” respectively. MNC 503 can be twodigits or three digits. A wireless network service provider can beidentified by the combination of the MCC 502 and MNC 503 values. Awireless network service provider may be associated with one or more MNC503 for each MCC 502 value for the region of the wireless networkservice provider. For example, for MCC 502 value of “310”, MNC 503values that AT&T Mobility is currently associated with, include “070”,“311”, “380”, “410”, “560”, and “680”.

FIG. 2A is a flowchart illustrating a process according to one of theembodiments of the present invention. Processing unit 102 of wirelesscommunication apparatus 101 retrieves IMSI 501 in step 201. Processingunit 102 uses MCC 502 and MNC 503 to identify a wireless network serviceprovider associated with the SIM card inserted in SIM card interface106. A configuration information is then identified based on theidentity of the wireless network service provider at step 202. Theconfiguration in-formation is sent to RF module 107 in step 203 in orderto configure RF module 107 to use setting(s) and/or an operating modethat corresponds to the identified wireless network service provider.The process ends at step 204. In one variant, RF module 107 is reseteach time it is configured by sending a configuration information. Inone example, RF module 107 can be reset by power-cycling RF module 107.

A configuration information may be a firmware, information of afirmware, one or more settings corresponding to a firmware, or anyinformation that can be used to configure RF module 107.

For illustration purpose, retrieving IMSI 501 in step 201 comprise thefollowing steps. Processing unit 102 first sends a first message to RFmodule 107 requesting for IMSI 501. RF module 107 then communicates withSIM card interface 106 and retrieves IMSI 501 from the SIM card insertedin SIM card interface 106. RF module 107 sends the retrieved IMSI 501 toprocessing unit 102 using a second message, and processing unit 102 thusretrieves IMSI 501.

After processing unit 102 has retrieved IMSI 501, it is able todetermine which wireless network service provider the SIM card isassociated with, and hence identifies a configuration information basedon the wireless network service provider according to IMSI 501. Forexample, the configuration information is information corresponding to afirmware. Therefore, processing unit 102 determines a firmware thatshould be used by RF module 107 according to the identity of thewireless network service provider in step 202. Processing unit 102 sendsa third message to RF module 107 in step 203 indicating the firmwarecorresponding to the wireless network service provider. In one variant,RF module 107 stores firmwares corresponding to one or more wirelessnetwork service providers in its own storage medium. When processingunit 102 sends the information of the firmware, RF module 107 configuresitself with the corresponding firmware that is stored in a storagemedium of RF module 107.

In one variant, as illustrated in FIG. 2B, processing unit 102 sends afourth message to RF module 107 requesting for the current configurationinformation of RF module 107 in step 211. The current configurationinformation is information of a configuration that RF module 107 hasalready been configured with. After identifying a configurationinformation based on the wireless network service provider in step 202,processing unit 102 compares the configuration information and thecurrent con-figuration information and determines whether they are thesame in step 212. If they are not the same, processing unit 102 sendsthe configuration information to RF module 107 in step 203, and theprocess ends at step 213. If they are the same, the configurationinformation is not sent to RF module 107, and the process ends at step213.

For illustration purposes, with reference to the example above, wherethe configuration information is information of a firmware, processingunit 102 retrieves in-formation of the current firmware in step 211. Thecurrent firmware is the firmware with which the RF module has alreadybeen configured. Then in step 202, processing unit 102 identifiesinformation of a firmware based on the identity of the wireless networkservice provider. In step 212, processing unit 102 determines whetherthe firmware identified in step 202 and the current firmware determinedin step 211 are the same. If they are the same, processing unit 102 doesnot need to send the information of the firmware to RF module 107 inorder to configure it with the firmware. If they are not the same,processing unit 102 sends the third message to RF module 107 in step 203indicating the information of the firmware. The process ends in step213.

For illustration purposes, the first, second, third, and fourth messagesare Qualcomm MSM Interface (QMI) messages using QMI protocol. The firstmessage and the second message correspond to step 201, and a commandthat queries the IMSI is “QMI_DMS_UIM_GET_IMSI”. The service type of thecommand is DMS, and the DMS message ID is 0x0043. The first message,which is sent by processing unit 102 for requesting IMSI 501, is arequest command “QMI_DMS_UIM_GET_IMSI_REQ”. Similarly, the secondmessage, which is sent by RF module 107 for indicating IMSI 501, is aresponse command “QMI_DMS_UIM_GET_IMSI_RESP”.

The fourth message corresponds to step 211. The fourth message is sentby executing a function defined in the QMI protocol. The name of thefunction corresponding to the fourth message is “GetImagesPreference”.The third message corresponds to step 203, and is sent by executing afunction defined in the QMI protocol, which is named“SetImagesPreference”. The function “SetImagesPreferences” can beexecuted with parameters according to the corresponding firmware, andhence RF module 107 is configured to use the corresponding firmware.

In one variant, the order of performing step 201 and 211 may beinterchanged, such that, step 211 may be performed before step 201.

In one variant, referring to FIG. 2A and FIG. 2B, after step 203, RFmodule 107 is or reset after it is configured according to theconfiguration information sent by processing unit 102. Resetting RFmodule 107 may be required in order to apply changes corresponding tothe configuration information. For example, when RF module 107 isconfigured with a firmware, RF module 107 is reset in order for thefirmware to be applied, i.e., so that RF module 107 starts usingsettings corresponding to the firmware.

In one variant, when a SIM card is inserted or re-inserted in SIM cardinterface 106, the process of FIG. 2A or FIG. 2B is performed, and theRF module is reset. In another variant, when wireless communicationapparatus 101 is turned on or restarted, the process of FIG. 2A or FIG.2B is performed.

In one variant, the configuration information is a firmware. Processingunit 102 may retrieve a firmware from secondary storage 105 or mainmemory 103 and send the firmware to RF module 107 in step 203. RF module107 is then configured with the firmware.

In one variant, the configuration information is a setting correspondingto a firmware. For example, the setting is a frequency to be used by RFmodule 107. Processing unit 102 identifies a frequency value orfrequency band based on the wireless network service provider and sendsthe frequency value in step 203 to RF module 107. For illustrationpurpose, processing unit 102 determines that IMSI 501 of a SIM cardinserted in SIM card interface 106 is “310070123456789”. MCC 502 and MNC503 values are “310” and “070” respectively. Therefore, processing unit102 is able to identify that the wireless network service provider isAT&T Mobility. In step 202, processing unit 102 identifies aconfiguration information which is the frequency value. Processing unit102 identifies the frequency value to be used is 700 MHz for AT&TMobility. RF module 107 is configured with the configuration informationand thus starts using 700 MHz for communicating.

The scope of the invention is not limited to the setting being afrequency value, such that the settings can be any settings of an RFmodule that can be configured by processing unit 102.

In one example, the setting is an Access Point Name (APN). RF module 107uses the APN for having Internet Protocol (IP) based connectivity. Forexample, processing unit 102 determines the APN based on the identity ofthe wireless network service provider, and then sends the APN to RFmodule 107 so that wireless communication apparatus 101 can connect tothe internet.

In another example, the setting is an authentication information. RFmodule 107 can be configured to use one of Password AuthenticationProtocol (PAP) and Challenge Handshake Authentication Protocol (CHAP).Processing unit 102 sends the setting to RF module 107 as theconfiguration information, and RF module 107 is configured to use anauthentication protocol specified in the setting in order to connect toa network provided by the wireless network service provider.

In another example, the setting is a network type. When the SIM card issubscribed to a LTE service, RF module 107 can be configured to use aspecific network type such as 2G, 3G, or LTE. Processing unit 102 cansend a setting specifying a network type as the configurationinformation to RF module 107. RF module 107 is then configured to usethe network type specified in the setting.

In another example, the setting is a roaming network setting. Processingunit 102 can enable or disable roaming services for RF module 107.Processing unit 102 can send a setting to enable roaming services or asetting to disable roaming services to RF module 107 as configurationinformation, and RF module 107 is configured according to the setting.When wireless communication apparatus is being used outside the area ofcoverage of a wireless network service provider associated with the SIMcard, RF module 107 connects to a roaming network if the setting was toenable roaming services. Alternatively, RF module 107 does not connectto a roaming network if the setting was to disable roaming services.

The settings can be entered by a user or administrator of wirelesscommunication apparatus locally or remotely through a web interface, anapplication programming interface (API), a command line interface, or aconsole. The settings can also be stored at secondary storage 105 ormain memory 103 and retrieved by processing unit 102.

The difference between the processes in FIG. 2A and FIG. 2B is that, inFIG. 2B, RF module 107 is only configured to switch its operating modeand reset when the current configuration information is not the same asa configuration information identified in step 202. It is known to thoseskilled in the art that configuring and resetting RF module 107 may takea few minutes. When wireless communication apparatus 101 is turned on orrestarted, RF module 107 may always be reset after step 203 in theprocess of FIG. 2A. However, in the process of FIG. 2B, RF module 107 isreset in step 203 only when the operating mode needs to be switched,i.e. the configuration in-formation and the current configurationinformation is determined not to be the same in step 212. On the otherhand, the additional steps 211 and 212 in FIG. 2B may also cause a delaywhen turning on or restarting wireless communication apparatus 101.

In one of the embodiments of the present invention, when RF module 107configures itself with a firmware corresponding to a wireless networkservice provider, RF module starts using settings that correspond to thefirmware.

It is known to those skilled in the arts that a RF module, such as RFmodule 107, can operate on different frequencies depending on thewireless network service provider associated with a SIM card inserted inSIM card interface 106, and hence wireless communication apparatus 101can have cellular connectivity through the wireless network provided bythe wireless network service provider. For example, the frequency rangeused by Company A may be 1900 MHz or 1700 MHz and 2100 MHz, while thefrequency range used by Company B may be 800 MHz or 1700 MHz and 2100MHz. Similarly, the frequency range used by Company A for may be 800MHz, 1900 MHz, or 2500 MHz.

For a better understanding, an illustrative scenario is provided here.For example, wireless communication apparatus 101 currently has a firstSIM card inserted in SIM card interface 106, and the first SIM card isassociated with AT&T Mobility. RF module 107 is currently configuredwith a first configuration corresponding to AT&T Mobility. The operatingmode is configured for RF module 107 being used in AT&T network. Now,the first SIM card is ejected, and a second SIM card associated withVerizon Communications is inserted in SIM card interface 106. Theconfiguration of RF module should be changed to a second configurationcorresponding to Verizon Communications. When the second SIM card isinserted, processing unit 106 retrieves the IMSI of the second SIM cardin step 201. When, in step 211, processing unit 102 retrieves thecurrent configuration information, it is determined that the currentcon-figuration is the first configuration corresponding to AT&Tmobility. In step 202, processing unit 102 identifies the secondconfiguration corresponding to Verizon Communications. In step 212, itis determined that the current configuration is not the same as thesecond configuration, and hence, in step 203, processing unit 102 sendscon-figuration information corresponding to Verizon Communications to RFmodule 107. RF module 107 is configured with the second configurationcorresponding to Verizon Communications. The operating mode isconfigured for RF module 107 being used in Verizon network. Thus, RFmodule 107 starts using settings corresponding to VerizonCommunications.

FIG. 3A is a flowchart illustrating a process according to one of theembodiments of the present invention. After a configuration informationis identified in step 202, a notification is sent to a user of wirelesscommunication apparatus 101 in step 301, informing the user about theconfiguration information. The notification can be sent to the userthrough an email, an instant message, a SMS message, a phone call, amessage shown in a web page, a popup message at a web page, or otherindicators that can be used to send the notification to the user.

In step 302, processing unit 102 determines whether a confirmation isreceived from the user. The confirmation may be sent by the user toconfirm sending configuration information to RF module 107. Therefore,if a confirmation is received, processing unit 102 sends theconfiguration information to RF module 107 in step 203. If noconfirmation is received from the user, processing unit 102 does notsend the configuration information to RF module 107 and the process endsat step 303.

For example, the configuration information is a roaming network settingwhich enables roaming services for RF module 107. Before processing unit102 sends the configuration information to RF module 107, a user isinformed that RF module 107 is going to be configured to connect to aroaming network. In order to avoid roaming charges, the user may notconfirm sending the configuration information to RF module 107 so thatroaming services are not enabled for RF module 107.

In one of the embodiments, as illustrated in FIG. 3B, steps 301 and 302may be performed after step 212 if the configuration information is notdetermined to be the same as the current configuration information instep 212.

FIG. 4A is a flowchart illustrating a process according to one of theembodiments of the present invention. After sending the configurationinformation to RF module 107 in step 203, processing unit 102 waits forRF module 107 to send a response corresponding to the third message. Instep 401, wireless communication apparatus 101 receives a correspondingresponse from RF module 107. Processing unit 102 parses thecorresponding response in step 402 to determine whether thecorresponding response is as expected in step 403. If the correspondingresponse is determined to be as expected, the process ends in step 404.Alternatively, if the corresponding response is not as expected,processing unit 102 performs step 203 again, and sends the configurationin-formation to RF module 107.

In step 403, processing unit 102 may determine whether the correspondingresponse is as expected by comparing the corresponding response with aninformation that is predetermined and stored in secondary storage 105 ormain memory 103. Alter-natively, the information may also be retrievedfrom a remote server. The information may comprise the expectedresponse, such as an expected frequency.

For example, the third message comprises information of a firmwarecorresponding to AT&T mobility, and RF module 107 is configured with thefirmware. When RF module 107 is configured with the firmwarecorresponding to AT&T mobility, RF module 107 uses a certain frequencyrange. In order to ensure that the correct frequency range is beingused, RF module 107 sends a response indicating the frequency rangeusing a fifth message. When processing unit 102 receives the fifthmessage in step 401, processing unit 102 determines whether thefrequency range is as expected in step 403. This ensures that RF module107 accurately received the third message and determined the frequencyrange. Processing unit 102 may retrieve the expected frequency rangestored in secondary storage 105 or main memory 103 and compare it withthe frequency range indicated in the fifth message. Hence processingunit 102 can determine whether the frequency range indicated in thefifth message is as expected.

In one of the embodiments, as illustrated in FIG. 4B, steps 401, 402 and403 may be performed after step 212 if the configuration information isnot determined to be the same as the current configuration informationin step 212.

FIG. 6 is a flowchart illustrating a process according to one of theembodiments of the present invention. RF module 107 receives a thirdmessage from processing unit 102 in step 601. The third messagecomprises a configuration information. The third message is sent inorder to configure RF module 107 with a configuration according to thecon-figuration information specified in the third message. In step 602,RF module 107 retrieves a configuration corresponding to theconfiguration information, and is then configured with the configurationin step 603. RF module 107 then starts using settings corresponding tothe configuration information in step 604.

For example, the configuration information is information of thefirmware. RF module 107 may have several firmwares stored in a storagemedium. In step 602, RF module 107 retrieves the firmware that wasspecified in the configuration information, and RF module 107 is thenconfigured with the corresponding firmware in step 603. In step 604, RFmodule 107 switches to an operating mode according to the firmware anduses settings specified in the firmware.

In one variant, RF module 107 should be reset after step 603 so that itmay start using settings corresponding to the configuration informationin step 604.

In one variant, RF module 107 may not have the firmware corresponding tothe con-figuration information stored in its storage medium. In step602, RF module 107 may then retrieve the firmware from a remote serveror may send a message to processing unit 102. The message may compriseinformation that the firmware is not stored in RF module 107. Themessage may also comprise a request for sending the firmware to RFmodule 107 as a configuration information. When processing unit 102receives the request for sending the firmware, processing unit 102 mayretrieve the firmware locally from secondary storage 105 or main memory102, or processing unit 102 may retrieve the firmware from a remoteserver. Processing unit 102 then sends the firmware as the configurationinformation to RF module 107, and thus RF module 107 is configured withthe firmware. Alternatively, processing unit 102 may send a notificationto the user requesting the user to manually store the firmware in RFmodule 107 or secondary storage 105 or main memory 103. RF module 107can then be configured with the firmware.

According to one of the embodiments of the present invention, wirelesscommunication apparatus 101 may have one or more SIM card interfaces 106and one or more RF module 107. For example, when wireless communicationapparatus 101 has a first SIM card interface 106 and a second SIM cardinterface 106. Priorities may be assigned to SIM cards inserted in thefirst and second SIM card interface 106. RF module 107 is configuredbased on IMSI 501 of a SIM card with highest priority. For illustrationpurpose, a first SIM card is inserted in the first SIM card interface106, and a second SIM card is inserted in the second SIM card interface106. The first SIM card is assigned with the highest priority and thesecond SIM card is assigned with the lowest priority. Therefore,processing unit 102 sends configuration information corresponding toIMSI 501 of the first SIM card to RF module 107, such that RF module 107is configured to use settings or an operating mode corresponding to awireless network service provider of the first SIM card. The prioritiesmay be assigned to the first and second SIM card using a predefinedconfiguration of wireless communication apparatus 101. Alternatively, auser of wireless communication apparatus 101 can assign the prioritiesto the first and second SIM card by configuring wireless communicationapparatus 101 through a web interface, an application programminginterface (API), a command line interface, or a console.

In one example, the priority is based on the position of a SIM card,i.e., whether a SIM card is housed in wireless communication apparatus101, or the SIM card is housed in an external device.

According to one of the embodiments of the present invention, a SIM cardinterface selector connects a plurality of SIM card interfaces to RFmodule 107. The SIM card interface selector is controlled by processingunit 102. Examples of a SIM card interface selector for two SIM cardinterfaces include TXS02326 Dual-Supply 2:1 SIM CardMultiplexer/Translator supplied by Texas Instruments and LTC4557 DualSIM/Smart Card Power Supply and Interface supplied by Linear Technology.Processing unit 102 may instruct the SIM card interface selector toselect one of the SIM card interfaces from the plurality of SIM cardinterfaces.

According to one of the embodiments, the selection may be performedaccording to received signal quality, predefined priority, preferences,price and etc.

According to one of the embodiments of the present invention, processingunit 102 may use the SIM card interface selector to select a SIM cardbased on event triggers. Event triggers include but are not limited to ageographic location trigger, a data usage trigger, a received signalquality trigger, a time trigger, a duration of usage trigger, a billingcycle trigger etc. Event triggers may be referred to as a first eventtrigger and a second event trigger. Processing unit 102 may select afirst SIM card and start using the first SIM card when the first eventtrigger occurs. Processing unit 102 may then stop using the first SIMcard when the second event trigger occurs. Processing unit 102 may alsostart using a second SIM card when the second event trigger occurs. Inone variant, a plurality of triggers can be combined to form an eventtrigger. For example, the first event trigger can be based on ageographic location trigger and a data usage trigger. In anotherexample, the second event trigger can be based on the duration of usagetrigger and the billing cycle information trigger. In one variant, thefirst event trigger and the second event trigger can be based on thesame trigger(s).

In another example, wireless communication apparatus 101 houses or isconnected to an external device housing a first SIM card, a second SIMcard, and also a first RF module 107 and a second RF module 107. Thefirst SIM card is inserted in a first SIM card interface 106, and thesecond SIM card is inserted in a second SIM card interface 106. Forillustration purpose, processing unit 102 sends configurationinformation corresponding to IMSI 501 of the first SIM card to the firstRF module 107, such that the first RF module 107 is configured to usesettings or an operating mode corresponding to a wireless networkservice provider of the first SIM card. Similarly, processing unit 102sends configuration information corresponding to IMSI 501 of the secondSIM card to the second RF module 107, such that the second RF module 107is configured to use settings or an operating mode corresponding to awireless network service provider of the second SIM card.

In another example, wireless communication apparatus 101 may have afirst RF module 107 and a second RF module 107. When the first SIM cardinterface 106 has a first SIM card inserted, but the second SIM cardinterface 106 does not have a second SIM card inserted, processing unit102 may select one of the first RF module 107 and the second RF module107 for sending configuration information corresponding to IMSI 501 ofthe first SIM card. For example, when the first RF module 107 isselected, processing unit 102 sends configuration informationcorresponding to IMSI 501 of the first SIM card to the first RF module107, and the first RF module 107 is configured to use settings or anoperating mode corresponding to a wireless network service provider ofthe first SIM card.

The embodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

The invention claimed is:
 1. A method for configuring at least one radiofrequency (RF) module by a wireless communication apparatus, comprising:(a) sending a first message to the at least one RF module; wherein thefirst message comprises a request for at least one international mobilesubscriber identity (IMSI) of at least one subscriber identity module(SIM) card; (b) receiving a second message from the at least one RFmodule; wherein the second message comprises the at least one IMSI ofthe at least one SIM card; wherein the at least one RF module retrievesthe at least one IMSI from the at least one SIM card; (c) determiningwhich wireless network service provider(s) the at least one SIM card isassociated with according to the at least one IMSI; (d) identifying atleast one configuration information based on identity of the wirelessnetwork service provider according to the at least one IMSI; (e) sendinga third message to the at least one RF module, wherein the third messagecomprises the at least one configuration information; (f) configuringthe at least one RF module based on the at least one configurationinformation if the at least one SIM card is with the highest priority;wherein the at least one RF module is housed in one of, the wirelesscommunication apparatus or in an external device; wherein the at leastone SIM card is configured to be housed in one of, the wirelesscommunication apparatus or in the external device; wherein the wirelesscommunication apparatus is configured to be connected to the externaldevice; wherein one of, the wireless communication apparatus or theexternal device houses a plurality of SIM cards; and wherein each of theplurality of SIM cards is assigned with a priority by using a predefinedconfiguration of the wireless communication apparatus.
 2. The method ofclaim 1, wherein the at least one configuration information is one of,(a) a firmware, (b) one or more settings, or (c) informationcorresponding to the firmware.
 3. The method of claim 2, wherein the atleast one configuration information is one or more settings selectedfrom a group consisting of a frequency value, an Access Point Name(APN), an authentication information, a network type, and roamingnetwork settings.
 4. The method of claim 1, wherein the at least oneconfiguration information is substantially based on Qualcomm MSMInterface (QMI) protocol.
 5. The method of claim 1, wherein the priorityof each of the plurality of SIM cards is based on a position of each ofthe plurality of SIM cards housed in the one of, the wirelesscommunication apparatus or in the external device.
 6. The method ofclaim 2, when the at least one configuration information is informationcorresponding to the firmware, the method comprising, after step (d):(g) determining whether the firmware is stored in the at least one RFmodule; and (h) if the firmware is not stored in the at least one RFmodule, sending the firmware to the at least one RF module; wherein whenthe firmware is stored in the at least one RF module, step (f) isperformed by the at least one RF module.
 7. The method of claim 1,further comprising, after step (d): (i) sending a fourth message to theat least one RF module, wherein the fourth message comprises a requestfor a current configuration information of the at least one RF module;(j) comparing the current configuration information of the at least oneRF module with the at least one configuration information based on theidentity of the wireless network service provider; (k) performing steps(e)-(f) if the current configuration information of the at least one RFmodule is not the same as the at least one configuration information;and (l) not performing steps (e)-(f) if the current configurationinformation of the at least one RF module is the same as the at leastone configuration information.
 8. The method of claim 1, furthercomprising, after step (f), verifying whether the configuring of the atleast one RF module has been changed according to the at least oneconfiguration information.
 9. The method of claim 8, wherein theverifying is performed by comparing a fifth message with a predeterminedinformation; wherein the fifth message is received from the at least oneRF module.
 10. The method of claim 1, further comprising, after step(f), resetting the at least one RF module according to the at least oneconfiguration information.
 11. A wireless communication system forconfiguring a radio frequency (RF) module, comprising: at least one RFmodule; at least one Subscriber Identity Module (SIM) card interface; awireless communication apparatus; wherein the at least one RF module ishoused in one of, the wireless communication apparatus or in an externaldevice; wherein the at least one SIM card interface is configured to behoused in the one of, the wireless communication apparatus or in theexternal device; wherein the wireless communication apparatus comprises:at least one network interface; at least one processing unit; at leastone non-transitory computer readable storage medium storing programinstructions executable by the at least one processing unit for: (a)sending a first message to the at least one RF module; wherein the firstmessage comprises a request for at least one international mobilesubscriber identity (IMSI) of at least one subscriber identity module(SIM) card; (b) receiving a second message from the at least one RFmodule; wherein the second message comprises the at least one IMSI ofthe at least one SIM card; wherein the at least one RF module retrievesthe at least one IMSI from the at least one SIM card; (c) determiningwhich wireless network service provider(s) the at least one SIM card isassociated with according to the at least one IMSI; (d) identifying atleast one configuration information based on identity of the wirelessnetwork service provider according to the at least one IMSI; (e) sendinga third message to the at least one RF module, wherein the third messagecomprises the at least one configuration information; (f) configuringthe at least one RF module based on the at least one configurationinformation if the at least one SIM card is with the highest priority;wherein the wireless communication apparatus is configured to connect tothe external device; wherein the one of, wireless communicationapparatus or the external device houses a plurality of SIM cards; andwherein each of the plurality of SIM cards is assigned with a priorityby using a predefined configuration of the wireless communicationapparatus.
 12. The wireless communication system of claim 11, whereinthe at least one configuration information is one of, (a) a firmware,(b) one or more settings, or (c) information corresponding to thefirmware.
 13. The wireless communication system of claim 12, wherein theone or more settings is configured to be selected from a groupconsisting of a frequency value, an Access Point Name (APN), anauthentication information, a network type, and roaming networksettings.
 14. The wireless communication system of claim 11, wherein theat least one configuration information is substantially based onQualcomm MSM Interface (QMI) protocol.
 15. The wireless communicationsystem of claim 11, wherein the priority of each of the plurality of SIMcards is based on a position of each of the plurality of SIM cardshoused in the one of, the wireless communication apparatus or in theexternal device.
 16. The wireless communication system of claim 2,wherein when the at least one configuration information is informationcorresponding to the firmware, the at least one non-transitory computerreadable storage medium further storing program instructions executableby the at least one processing unit for: (g) after step (d), determiningwhether the firmware is stored in the at least one RF module; and (h) ifthe firmware is not stored in the at least one RF module, sending thefirmware to the at least one RF module; wherein when the firmware isstored in the at least one RF module, step (f) is performed by the atleast one RF module.
 17. The wireless communication system of claim 1,the at least one non-transitory computer readable storage medium furtherstoring program instructions executable by the at least one processingunit for: (i) after step (d), sending a fourth message to the at leastone RF module, wherein the fourth message comprises a request for acurrent configuration information of the at least one RF module; (j)comparing the current configuration information of the at least one RFmodule with the at least one configuration information based on theidentity of the wireless network service provider; (k) performing steps(e)-(f) if the current configuration information of the at least one RFmodule is not the same as the at least one configuration information;and (l) not performing steps (e)-(f) if the current configurationinformation of the at least one RF module is the same as the at leastone configuration information.
 18. The wireless communication system ofclaim 1, the at least one non-transitory computer readable storagemedium further storing program instructions executable by the at leastone processing unit for: after step (f), verifying whether theconfiguring of the at least one RF module has been changed according tothe at least one configuration information.
 19. The wirelesscommunication system of claim 8, wherein the verifying is performed bycomparing a fifth message with a predetermined information; wherein thefifth message is received from the at least one RF module.
 20. Thewireless communication system of claim 1, the at least onenon-transitory computer readable storage medium further storing programinstructions executable by the at least one processing unit for: afterstep (f), resetting the at least one RF module according to the at leastone configuration information.